package fiuba.algo3.vehiculo;

import org.jdom2.Element;

import fiuba.algo3.obstaculo.*;

public class Moto implements Vehiculo {

	int cantidadDeMovimientosPorTurno;

	public Moto() {
		cantidadDeMovimientosPorTurno = 0;
	}

	public int getCantidadDeMovimientosDelTurno() {
		return cantidadDeMovimientosPorTurno;
	}

	public void setCantidadDeMovimientosDelTurno(int movimientos) {
		cantidadDeMovimientosPorTurno = movimientos;
	}

	public Auto cambiarAlSiguienteVehiculo() {
		Auto unAuto = new Auto();
		return unAuto;
	}

	public void aplicarPozo(Pozo unPozo) {
		unPozo.aplicarMoto(this);
	}

	public void aplicarPiquete(Piquete unPiquete) {
		unPiquete.aplicarMoto(this);
	}

	public void aplicarControl(ControlPolicial unControl) {
		unControl.aplicarMoto(this);
	}

	public boolean puedoPasar(Obstaculo unObstaculo) {
		return unObstaculo.pasarConMoto(this);
	}

	public boolean pasarPorPozo() {
		return true;
	}

	public boolean pasarPorPiquete() {
		return true;
	}

	public boolean pasarPorControl() {
		return true;
	}
	
	public Element serializar(){
		Element nodoMoto = new Element ("Vehiculo");
		nodoMoto.setAttribute("cantidadDeMovimientosPorTurnos", Integer.toString(cantidadDeMovimientosPorTurno));
		nodoMoto.setAttribute("tipoDeVehiculo", "moto");
		return nodoMoto;		
	}
	
	public Moto(Element nodoMoto){
		this.setCantidadDeMovimientosDelTurno(Integer.parseInt(nodoMoto.getAttributeValue("cantidadDeMovimientosPorTurnos")));
	}

}
